﻿#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	switch (n % 4)
//	{
//	case 0:
//		printf("整除，余数为0\n");
//		break;
//	case 1:
//		printf("余数是1\n");
//		break;
//	case 2:
//		printf("余数是2\n");
//		break;
//	default:
//		printf("余数是3\n");
//
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		printf("%d ", i);
//		
//			i = i + 1;
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			continue;
//		//当i等于5后，就执⾏continue，直接跳过continue的代码，去循环的判断的地⽅
//		//因为这⾥跳过了i = i+1，所以i⼀直为5，程序陷⼊和死循环
//		printf("%d ", i);
//		i = i + 1;
//	}
//	return 0;
//}



//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	while (i <= 10)
//	{
//		if (i == 5)
//			break;//当i等于5后，就执⾏break，循环就终⽌了
//		printf("%d ", i);
//		i = i + 1;
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int i = 0;
//	for (i = 1; i <= 10; i++)
//	{
//		printf("%d ", i);
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int i = 1;
//	for (i = 1; i <= 10; i++)
//	{
//		if (i == 5)
//			break;
//		printf("%d ", i);
//	}
//	return 0;
//}
//#include <stdio.h>
//	int main()
//	{
//		int i = 1;
//		for (i = 1; i <= 10; i++)
//		{
//			if (i == 5)
//				continue;//这⾥continue跳过了后边的打印，来到了i++的调整部分
//			printf("%d ", i);
//		}
//		return 0;
	//}


//#include <stdio.h>
//int main()
//{
//	printf("hehe\n");
//	goto next;
//	printf("haha\n");
//next:
//	printf("跳过了haha的打印\n");
//	return 0;
//}

//#include <stdio.h>
//
//int main() {
//    int i = 0;
//    int a = 0;
//    int b = 0;
//
//    while (scanf("%d", &i) != EOF)
//    {
//        for (a = 0;a < i;a++)
//        {
//            for (b = 0;b < i;b++)
//            {
//                if (a == b || a + b == i - 1)
//
//                    printf("*");
//                else
//                    printf(" ");
//
//            }
//            printf("\n");
//
//        }
//    }
//    return 0;
//
//}


#include <stdio.h>

//int main() {
//    int n = 0;
//    int i = 0;//行
//    int j = 0;//列
//    while (scanf("%d", &n))
//    {
//        for (i = 0;i < n;i++)
//        {
//            for (j = 0;j < n;j++) {
//                if (i == 0 || i == n - 1 || j == 0 || j == n - 1)
//                    printf("*");
//                else
//                    printf(" ");
//            }
//            printf("\n");
//
//        }
//    }
//
//    return 0;
//}

int main() {
    int n = 0;
    int m = 0;
    int arr[10][10] = { 0 };
    scanf("%d %d", &n, &m);
    int i = 0;
    int j = 0;
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            scanf("%d", arr[i][j]);
        }
    }
    for (i = 0; i < m; i++) {
        for (j = 0; j < n; j++) {
            printf("%d ", arr[j][i]);
        }
        printf("\n");
    }
    return 0;
}